3rdstagefandomcom-20200214-history
On .NET
__TOC__ .NET Core .NET Framework * http://www.microsoft.com/net * Desc. : a software framework developed by Microsoft that runs primarily on Microsoft Windows. * References ** .NET Framework 4.6 and 4.5 Class Library ** .NET Framework 4 Class Library *** System.Collections.Generic Namespace *** System.ComponentModel.DataAnnotations Namespace **** Range, Required, Validation, ... * Readings ** .NET Framework (Wikipedia) ** Common Language Runtime(CLR) (Wikipedia) *** the virtual machine component of Microsoft's .NET framework, manages the execution of .NET programs ** Common Language Infrastructure(CLI) (Wikipedia) *** an open specification developed by Microsoft and standardized by ISO and ECMA that describes executable code and a runtime environment that allow multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures. ** Version Compatibility in the .NET Framework ** How to: Determine Which .NET Framework Versions Are Installed ** Installing the .NET Framework ** Microsoft .NET Framework 3.5 Deployment Considerations *** .NET Framework 3.5 is not included by default in Windows® 8 or Windows Server® 2012 ** .NET Framework Client Profile * Tools ** Assembly Registration Tool (regasm.exe) Windows SDK * https://en.wikipedia.org/wiki/Microsoft_Windows_SDK * Desc. : supports developing applications for Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server 2008, .NET Framework 3.0, .NET Framework 3.5, and .NET Framework 4.0. * Downloads ** Windows SDK for Windows 10 ** Windows SDK for Windows 8.1 ** Windows SDK for Windows 7 and .NET Framework 4 COM Interop * COM Interop Tutorials * [https://msdn.microsoft.com/en-us/library/aa645738.aspx COM Interop Part 2: C# Server Tutorial] ** COM Interop Part 2 Sample * Exposing .NET Framework Components to COM * How to call a managed DLL from native Visual C++ code in Visual Studio.NET or in Visual Studio 2005 (maybe out of date) C++/CLI * .NET Programming with C++/CLI * Quick C++/CLI - Learn C++/CLI in less than 10 minutes (26 Jun 2007) * [http://weblogs.asp.net/kennykerr/Mixing-Native-and-Managed-Types-in-C_2B002B00_ Mixing Native and Managed Types in C++] (July 12, 2005) * Using and extending the Orcas marshal_as library (12 Jul 2007) WMI.NET * WMI .NET Overview * How To: Provide Management Data * Writing coupled WMI providers using WMI.NET Provider Extension 2.0 Frameworks UI WPF * https://msdn.microsoft.com/en-us/library/ms754130.aspx * Desc. : a next-generation presentation system for building Windows client applications with visually stunning user experiences * Readings ** WPF Fundamentals ** Walkthrough: Arranging Windows Forms Controls in WPF ** wpf over activeX (Mar 6 '13) * API ** .NET Framework 4.5 and 4.6 Class Library ** System.Windows Namespaces *** The System.Windows namespaces contain types used in Windows Presentation Foundation (WPF) applications, including animation clients, user interface controls, data binding, and type conversion. Object Model COM * COM Reference * COM Functions * COM & ATL IoC Unity * https://msdn.microsoft.com/library/ff647202.aspx * Desc. : a lightweight, extensible dependency injection container with optional support for instance and type interception * License : Microsoft Public License (Ms-PL) * Sources : * Readings ** Unity 3 *** Developer's Guide to Dependency Injection Using Unity *** Unity Container 3 Class Library Data Access/OR Mapping ADO * ADOX Fundamentals ** ADOX includes objects for schema creation and modification, as well as security. * Microsoft OLE DB Provider for Microsoft Jet * Using ADOX with ADO.NET (Mar 11, 2010) MyBatis.NET * https://code.google.com/archive/p/mybatisnet/ * Desc. : * License : * Readings ** iBATIS.NET Data Access Objects Developer Guide ** iBATIS.NET DataMapper Developer Guide ** iBatisNet Tutorial ** MyBatis.NET as DataMapper (6 Apr 2015) Networking Nancy * http://nancyfx.org/ * Desc. : a lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono * License : MIT * Sources : https://github.com/NancyFx/Nancy * Readings ** Official documentation Akka.NET * http://getakka.net/ * Desc. : a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono. * License : Apache 2 license * Sources : https://github.com/akkadotnet/akka.net/ * Readings Logging log4net * http://logging.apache.org/log4net/ * Desc. : a tool to help the programmer output log statements to a variety of output targets * License : * Readings ** Configuration ** API documentation NLog * http://nlog-project.org/ * Desc. : a free logging platform for .NET, Silverlight and Windows Phone with rich log routing and management capabilities * License : BSD license * Sources : https://github.com/NLog/NLog/ * Readings ** Tutorial ** Wiki ** NLog 4 API documentation Testing NUnit * http://www.nunit.org/ * Desc. : a unit-testing framework for all .Net languages * License : MIT license * Sources : https://github.com/nunit/nunit * Readings ** NUnit 3.0 Documentation *** Constraints ** Getting Started with NUnit XMLUnit * http://xmlunit.sourceforge.net/ * Desc. : JUnit and NUnit testing for XML Libraries Fundamental EasyHook * https://easyhook.github.io/ * Desc. : makes it possible to extend (via hooking) unmanaged code APIs with pure managed functions, from within a fully managed environment * License : MIT license * Sources : https://github.com/EasyHook/EasyHook * Readings ** C# – Screen capture with Direct3D 9 API Hooks March 29, 2010 Smart Thread Pool * https://smartthreadpool.codeplex.com/ * Desc. : a thread pool written in C#. * License : "Microsoft Public License":https://smartthreadpool.codeplex.com/license * Sources : https://github.com/amibar/SmartThreadPool SharpZipLib * http://icsharpcode.github.io/SharpZipLib/ * Desc. : a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform. * License : GPL Image Processing OpenCvSharp * https://github.com/shimat/opencvsharp * Desc. : Cross platform wrapper of OpenCV for .NET Framework. * License : BSD License Emgu CV * http://www.emgu.com/ * Desc. : a cross platform .Net wrapper to the OpenCV image processing library. * License : Dual License - GNU GPL license v3 or Commercial License Vlc.DotNet * https://github.com/ZeBobo5/Vlc.DotNet * Desc. : .NET control that hosts the audio/video capabilities of the VLC libraries * License : MIT Graphics SlimDX * https://www.slimdx.org/ * Desc. : a free open source framework that enables developers to easily build DirectX applications using .NET technologies such as C#, VB.NET, and IronPython. * License : MIT license * Sources : https://code.google.com/archive/p/slimdx/source * Readings ** Official documentation Tools IDE Visual Studio * Readings ** How to: Sign an Assembly ** Unit testing existing C++ applications with Test Explorer ** Configure unit tests by using a .runsettings file Visual Studio Express * http://www.microsoft.com/express * Desc. : a set of freeware integrated development environments (IDE) developed by Microsoft that are lightweight versions of the Microsoft Visual Studio product line. * References ** Visual C++ 2010 Compiler Options Listed by Category *** For Visual Studio, compiler options are case-sensitive but linker options are case-insensitive ** Visual C++ 2010 Setting Compiler Options/CL Environment Variables * Readings ** WindowsSdkDir is wrong, how to change? ** Debugging in Visual Studio * Downloads ** Visual Studio Express 2010 ISO Image ** Visual Studio Express 2012 for Windows Desktop *** ISO Image ** Visual Studio Express 2013 for Windows Desktop with Update 5 Visual Studio Addons/Extensions/Plugins * [https://www.microsoft.com/en-US/download/details.aspx?id=48157 Microsoft Visual Studio 2015 Language Pack] ** switch the language that's displayed in the Visual Studio user interface. * [https://visualstudiogallery.msdn.microsoft.com/0855e23e-4c4c-4c82-8b39-24ab5c5a7f79 Markdown Mode] ** Desc. : provides support for editing files that use the Markdown syntax. ** License : Microsoft Public License * [https://visualstudiogallery.msdn.microsoft.com/a23de100-31a1-405c-b4b7-d6be40c3dfff Visual Studio Spell Checker] ** Desc. : checks the spelling of comments, strings, and plain text as you type or interactively with a tool window. ** License : Microsoft Public License MonoDevelop * http://monodevelop.com/ * Desc.: an IDE primarily designed for C# and other .NET languages. * License : LGPLv2 SharpDevelop * http://www.icsharpcode.net/opensource/sd/ * Desc. : a free IDE for C#, VB.NET and Boo projects on Microsoft's .NET platform. * License : GPLv2, LGPLv2 * Sources : https://github.com/icsharpcode/SharpDevelop * Readings ** #develop Features Decompiler * Something Better than .NET Reflector?(Stack Overflow, Apr 15 '10) ILSpy * http://ilspy.net/ * Desc. : the open-source .NET assembly browser and decompiler * License Dependency Walker * http://www.dependencywalker.com/ * Desc. : a free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. * License : * Readings ** Dependency Walker Path (DWP) Files Monitoring and Diagnostic * Diagnostic Tools in Visual Studio * Using Profiling Tools Visual Studio 2008 Service Pack 1 Stand-Alone Profiler * https://www.microsoft.com/en-us/download/details.aspx?id=18277 WPF Performance Suite * https://msdn.microsoft.com/en-us/library/aa969767.aspx * Desc. : enables you to analyze the run-time behavior of your WPF applications and determine performance optimizations that you can apply Process Explorer * https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx * Desc. : shows you information about which handles and DLLs processes have opened or loaded. Debugging DebugView * http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx * Desc. : an application that lets you monitor debug output on your local Windows system, or any computer on the network that you can reach via TCP/IP. Visual Leak Detector * https://vld.codeplex.com/ * Desc. : a free, robust, open-source memory leak detection system for Visual C++. * Readings ** Visual Leak Detector: Investigate Memory Leaks in Visual C++(SEPTEMBER 11, 2010) ** Visual Leak Detector - Enhanced Memory Leak Detection for Visual C++(14 Nov 2006) WinDbg * https://en.wikipedia.org/wiki/WinDbg * Desc. : a multipurpose debugger for the Microsoft Windows computer operating system, distributed on the Worldwide Web by Microsoft. * License : commercial * Readings ** Debugging Tools for Windows (WinDbg, KD, CDB, NTSD) ** Symbols for Windows debugging (WinDbg, KD, CDB, NTSD) ** Getting Started with Windows Debugging ** WinDbg. From A to Z! * Downloads ** Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 ** Microsoft Windows SDK for Windows 7 and .NET Framework 4 ** Windows SDK for Windows 8 *** Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2 ** Windows SDK for Windows 8.1 *** Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2 Documentation * C# XML Documentation Tutorial * Recommended Tags for Documentation Comments (C# Programming Guide) DocFX * http://dotnet.github.io/docfx/ * Desc. : tools for building and publishing API documentation for .NET projects * License : The MIT License * Sources : https://github.com/dotnet/docfx Sandcastle * https://sandcastle.codeplex.com/ * Desc. : a documentation compiler for Managed class library that generates Microsoft-style Help topics, both conceptual and API reference. * License : * Sources : https://github.com/NLog/NLog/tree/master/tools/Sandcastle * Readings ** Introduction ** Sandcastle Help ** Build scripts *** Command-line batch script : build_Sandcastle.bat *** MSBuild project : build.proj *** Windows PowerShell script : scbuild.ps1 ** Sandcastle Help File Builder Documentation Build Tool MSBuild * https://github.com/microsoft/msbuild * Desc. : the build platform for .NET and Visual Studio * License : MIT license * Source : https://github.com/microsoft/msbuild * Readings ** Official documentation ** MSBuild Reference ** MSBuild Reserved and Well-Known Properties ** How to: Use Environment Variables in a Build *** All environment variables are available to the Microsoft Build Engine (MSBuild) project file as properties. Installer WiX Toolset * http://wixtoolset.org/ * Desc. : a set of tools that allows you to create Windows Installer-based deployment packages for your application. * License : Common Public License * Sources ** WiX Toolset v3.x : https://github.com/wixtoolset/wix3 ** WiX Toolset v4.x : https://github.com/wixtoolset/wix4 * References ** WiX Official Manual ** WiX Tutorial *** [https://www.firegiant.com/wix/tutorial/com-expression-syntax-miscellanea/formatted-strings/ Formatted Strings] **** Referencing properties, preprocessor variables and binder(linker) variables **** Compile-time variable substitution : $(var.Foo) **** Link-time(bind-time) variable substitution : !(bind.Bar) *** Events and Actions ** Tools *** Linker(light.exe) options ** Schemas *** wix.xsd *** Wix Element ** Properties/Variables *** Properties Guide **** Properties are global variables that Windows Installer uses during an installation. *** Property Reference (properties defined by Windows Installer) **** ProductVersion property major.minor.build format **** Operating System Property Values *** System Folder Properties *** Binder Variables ** Actions *** Windows Installer Standard Actions Reference *** Standard Custom Actions *** WixNetfxExtension **** custom action to generate native code for .NET assemblies; properties to detect .NET Framework install state and service pack levels. * Readings ** [http://wixtoolset.org/documentation/manual/v3/overview/preprocessor.html Preprocessor] *** variables, conditional statements, iteration statement ** How To: Add a File To Your Installer ** How to create a directory in wix?(Jun 2 '12) ** How To: Specify source files ** How To: Generate a GUID ** Create GUIDs online ** How To: Check for .NET Framework Versions ** How To: Install the Visual C++ Redistributable with your installer ** WiX 3 Tutorial: Solution/Project structure and Dev resources(2010/02/11) ** WiX 3 Tutorial: Understanding main WXS and WXI file(2010/02/17) ** WiX 3 Tutorial: Generating file/directory fragments with Heat.exe(2010/02/23) ** WiX 3 Tutorial: Custom EULA License and MSI localization(2010/04/15) ** How To: Optimize build speed ** Properties/Variables *** What does square brackets syntax mean in WiX(May 29 '14) *** Formatted data type of Windows Installer **** a text string that is processed to resolve embedded property names, table keys, environment variable references, and other special substrings. *** The WiX toolset's "Remember Property" pattern.(May 2, 2010) ** UI *** Built-in WixUI Dialog Sets *** WixUI_Advanced Dialogs *** Customizing Built-in WixUI Dialog Sets *** WixUI_Advanced.wxs *** WixUI_en-us.wxl ** Actions *** Quiet Execution Custom Action *** Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer ** Localization *** Code Pages *** Code Page Identifiers *** Locale ID (LCID) *** WiX: How to create a single MSI file containing Install wizard in multiple languages?(Feb 4 '13) *** How to create MSI packages with multilingual user interface (MUI) ? Windows Installer * Windows Installer(Wikipedia) * Using Windows Installer * Windows Installer Reference * Formatted Inno Setup * http://www.jrsoftware.org/isinfo.php * Desc. : A free installer for Windows programs. * Readings ** Inno Setup for Visual C++ Redistributable Package for Visual Studio 2013(Dec 20 '14) Nullsoft Scriptable Install System * http://nsis.sourceforge.net/ * Desc. : A professional open source system to create Windows installers. IExpress * https://technet.microsoft.com/en-us/library/dd346760.aspx * Desc. : * License : * Readings ** IExpress Overview ** IExpress Batch-mode Setup Switches ** SED Overview ** INF File Architecture ** INF Files ** Setup Information (.inf) Files ** [https://technet.microsoft.com/en-us/library/Dd346763.aspx Setup Information File (.inf) Definition] Package Management NuGet * https://www.nuget.org/ * Desc. : the package manager for the Microsoft development platform including .NET. * License : * Packages : https://www.nuget.org/packages * Readings ** Hosting Your Own NuGet Feeds Chocolatey * https://chocolatey.org/ * Desc. : a package manager for Windows (like apt-get or yum but for Windows) * License : AGPL * Sources : https://github.com/chocolatey/chocolatey.org * Packages : https://chocolatey.org/packages * Commands ** list *** List/Search Command (choco list) ** install *** Install Command (choco install) Scoop * http://scoop.sh/ * Desc. : A command-line installer for Windows * License * Sources : https://github.com/lukesampson/scoop